package com.jdls.day13.work;

import java.io.*;

/**
 * @author 嘉德罗斯
 * @date 2021/8/3
 */
public class Test3 {
    private static void test3() throws IOException {
        File src = new File("D:\\原神抽奖");
        File desc = new File("D:\\");
        copyDir(src,desc);
    }

    public static void copyDir(File src, File desc) throws IOException {
        // 在目的地下创建新的文件夹 （父路径是d:\\  子路径： 02-Git课程（双元） ）
        desc = new File(desc, src.getName());
        if (!desc.exists()) {
            desc.mkdirs();
        }
        // 获取数据源中的所有数据
        File[] files = src.listFiles();
        if (files != null) {
            for (File file : files) {
                if (file.isFile()) {
                    // 如果是文件 就复制
                    copyFile(file,new File(desc,file.getName()));
                } else {
                    // 如果是文件夹，就继续递归调用
                    copyDir(file,desc);
                }
            }
        }
    }

    private static void copyFile(File src, File desc) throws IOException  {
        FileInputStream fis = new FileInputStream(src);
        FileOutputStream fos = new FileOutputStream(desc);
        byte[] bys = new byte[1024];
        int len;
        while ((len = fis.read(bys)) != -1) {
            fos.write(bys,0,len);
        }
        fis.close();
        fos.close();
    }
}
